package pe.edu.upc.dew.grupo5.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.edu.upc.dew.grupo5.model.Boleto;

public class BoletoDaoJdbc extends SimpleJdbcDaoSupport implements BoletoDao{

	@Override
	public Boleto getBoletoPorCodigo(int idBoleto) {
		return getSimpleJdbcTemplate().queryForObject("select idBoleto,numBoleto,fecha,cantidad,precio,importe,codigoPayPal,codigoBanco from Boleto where idBoleto=?",new BeanPropertyRowMapper<Boleto>(Boleto.class),idBoleto);
	}

	@Override
	public List<Boleto> getBoletos() {
		return getSimpleJdbcTemplate().query("select idBoleto,numBoleto,fecha,cantidad,importe,codigoPayPal,codigoBanco from Boleto",new BeanPropertyRowMapper<Boleto>(Boleto.class));
	}

	@Override
	public void eliminarBoleto(int idBoleto) {
		getSimpleJdbcTemplate().update("delete from Boleto where idBoleto=?",idBoleto);
	}

	@Override
	public void insertaBoleto(Boleto boleto) {
		getSimpleJdbcTemplate()
		.update("insert into Boleto(numBoleto,fecha,cantidad,precio,importe,codigoPayPal,codigoBanco,idCliente,idFuncion) " +
				"values(?,?,?,?,?,?,?,?,?)",
				boleto.getNumBoleto(),boleto.getFecha(),boleto.getCantidad(),boleto.getPrecio(),boleto.getImporte(),
				boleto.getCodigoPayPal(),boleto.getCodigoPayPal(),boleto.getIdCliente(),boleto.getIdFuncion());
	}

	@Override
	public int getBoletosPorFuncion(int idFuncion) {
		return getSimpleJdbcTemplate().queryForInt("select sum(cantidad) from Boleto where idFuncion=?",idFuncion);
	}

	@Override
	public int getNumero() {
		return getSimpleJdbcTemplate().queryForInt("select ifnull(max(idBoleto),0)+1 from boleto");
	}

}
